DTHREADS: Efficient and Deterministic Multithreading

نویسندگان

  • Tongping Liu
  • Charlie Curtsinger
  • Emery D. Berger
چکیده

Multithreaded programming is notoriously difficult to get right. A key problem is non-determinism, which complicates debugging, testing, and reproducing errors in multithreaded applications. One way to simplify multithreaded programming is to enforce deterministic execution. However, past deterministic systems are incomplete or impractical. Language-based approaches require programmers to write their code in specialized languages. Other systems require program modification, do not ensure determinism in the presence of data races, do not work with general-purpose multithreaded programs, or suffer substantial performance penalties (up to 8× slower than pthreads) that limit their usefulness. This paper presents DTHREADS, an efficient deterministic multithreading system for unmodified C/C++ applications. DTHREADS not only prevents semantic errors like race conditions and deadlocks, but also can enhance performance by eliminating false sharing of cache lines. DTHREADS leverages virtual memory and process isolation, combined with a deterministic commit protocol, to ensure robust deterministic execution with low runtime overhead. Experimental results show that DTHREADS substantially outperforms a state-of-the-art deterministic runtime system, and often matches—and occasionally exceeds—the performance of pthreads.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Increasing Concurrency in Deterministic Runtimes with Conversion

Experimental results are presented for several benchmark programs, identifying quantum size imbalance as a major source of inefficiency in Dthreads. A two-pronged approach is proposed to address this problem. First, Dthreads is ported to a versioned memory subsystem, so that the fence may be removed. Second, we find that Dthreads’ roundrobin token order is more rigid than necessary for the revi...

متن کامل

A Multithreading Local Search For Multiobjective Energy-Aware Scheduling In Heterogeneous Computing Systems

This article introduces an efficient multithreading local search algorithm for solving the multiobjective scheduling problem in heterogeneous computing systems considering the makespan and energy consumption objectives. The proposed method follows a fully multiobjective approach using a Pareto-based dominance search executed in parallel. The experimental analysis demonstrates that the new multi...

متن کامل

Deterministic Multithreading for Java-based Replicated Objects

This paper describes a novel approach to deterministic multithreading for active replication of Java objects. Unlike other existing approaches, the presented deterministic thread scheduler fully supports the native Java synchronisation mechanisms, including reentrant locks, condition variables, and time bounds on wait operations. Furthermore, this paper proposes source-code transformation as a ...

متن کامل

Multithreading Strategies for Replicated Objects

Replicating objects usually requires deterministic behaviour for maintaining a consistent state. Multithreading is a critical source of non-determinism, completely unsupported in most fault-tolerant middleware systems. Recent publications have de ned deterministic scheduling algorithms that operate at the middleware level and allow multithreading for replicated objects. This approach avoids dea...

متن کامل

Practically Making Threads Deterministic and Stable

Multithreaded programs are hard to get right. A key reason is that the contract between developers and runtimes grants exponentially many schedules to the runtimes. Two approaches improve correctness by reducing schedules. Deterministic multithreading (DMT) reduces schedules for each input down to one. Stable multithreading (SMT) reduces schedules for all inputs, increasing coverage of checking...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010